package com.suse.service.community.service;

import com.suse.service.community.entity.Message;

import java.util.List;

/**
 * <p>
 * 消息业务接口
 * </p>
 *
 * @author 辜玉彬
 * @since 2022-09-01 16:04
 */
public interface MessageService {

    List<Message> getConversationList(int userId, int offset, int limit);

    int getConversationTotal(int userId);

    List<Message> getLetterList(String conversationId, int offset, int limit);

    int getLetterTotal(String conversationId);

    int getConversationUnreadLetterCount(int userId,String conversationId);

    int getUnreadLetterCount();

    boolean save(Message message);

    boolean readLetterList(List<Integer> idList);

    /**
     * 获取最新的主题通知
     * @param topic 主题
     * @return 最新的主题通知
     */
    Message getLatestTopicNotice(String topic);

    /**
     * 获取主题通知数
     * @param topic 主题
     * @return 主题通知数
     */
    int getTopicNoticeCount(String topic);

    /**
     * 获取未读的主题通知数
     * @param topic 主题
     * @return 未读的主题通知数
     */
    int getUnreadTopicNoticeCount(String topic);

    /**
     * 获取未读的通知数
     * @return 未读的通知数
     */
    int getUnreadNoticeCount();

    /**
     * 获取主题通知列表(分页)
     * @param topic 主题
     * @param offset 偏移量
     * @param limit 限制行数
     * @return 主题通知列表
     */
    List<Message> getTopicNoticeList(String topic, int offset, int limit);

    /**
     * 获取未读消息数
     * @return 未读消息数
     */
    int getUnreadMessageCount();

}
